package com.uzhie.web.dao;

import com.uzhie.web.module.Equipment;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

/**
 * Created by zhangdequan on 2018/7/13.
 */
public interface EquipmentDAO extends Mapper<Equipment> {

    /**
     * 根据条件查询设备信息
     *
     * @param deviceNumber  设备序列号
     * @param simNumber     sim卡号
     * @param mfrsName      生产厂商
     * @param deviceType    设备类型
     * @param minCreateTime 开始时间
     * @param maxCreateTime 结束时间
     * @return
     */
    List<Equipment> selectAllByCondition(@Param(value = "list") List<String> departIds,
                                         @Param(value = "deviceNumber") String deviceNumber,
                                         @Param(value = "simNumber") String simNumber,
                                         @Param(value = "mfrsName") String mfrsName,
                                         @Param(value = "deviceType") String deviceType,
                                         @Param(value = "minCreateTime") String minCreateTime,
                                         @Param(value = "maxCreateTime") String maxCreateTime,
                                         @Param(value = "departName") String departName,
                                         RowBounds rowBounds

    );

    /**
     * 根据id,查询设备信息详情
     *
     * @param equipmentId
     * @return
     */
    Equipment selectEquipmentById(@Param(value = "equipmentId") String equipmentId);

    /**
     * 根据设备id,更新设备状态信息
     *
     * @param equipmentId
     * @param status
     * @return
     */
    int updateEquipmentStatusById(@Param(value = "equipmentId") String equipmentId, @Param(value = "status") Integer status);

    /**
     * 判断特定目录类型是否被引用
     * create by lilongfei
     *
     * @param type 0 没有 1 有
     * @return
     */
    int baseDataHasBeUsed(@Param("type") String type);

    /**
     * @param sim sim
     * @return true 在 false 不在
     * @author 唐飞
     * <p>
     * 检测SIM卡是否在数据库中
     */
    boolean simExist(String sim);

    /**
     * 查询设备的状态
     *
     * @param sim 设备SIM卡号
     * @return
     * @author 唐飞
     */
    Map<String,Object> selectIDStatus(@Param(value = "sim") String sim);

    int deleteBySimNumber(@Param("simNumber") String simNumber);
}
